﻿using SmartWMS.Common.ResponseOutput;
using SmartWMS.Server.WarehouseManage.OutWarehouseServer.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartWMS.Server.WarehouseManage.OutWarehouseServer
{
    public interface IOutWarehouseServers:ITransientServer
    {
        /// <summary>
        /// 出库管理列表
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<List<OutWarehouseDtoPuls>>> GetOutWarehouseDtoPes(OutWarehouseDtoPage dto);
        /// <summary>
        /// 查看
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<OutWarehouseDtoPes>> GetViewOutWarehouse(OutWarehouseDtoPes dto);
        /// <summary>
        /// 审核出库状态
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateStateOutWare(OutWarehouseDtoPes dto);
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> DelOutWare(OutWarehouseDtoPes dto);
        /// <summary>
        /// 批量删除数据（盘点表盘点明细）
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> DeleteOutWare(List<OutWarehouseDtoPes> dto);
        /// <summary>
        /// 添加出库出库明细
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> AddOutWare(OutWarehouseDtoPes dto);
        /// <summary>
        /// 联想查询
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<List<SalesDtoPas>>> Getassociation(OutWarehouseDtoPage dto);
        /// <summary>
        /// 反填数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OutWarehouseDtoPes ReckOutWare(OutWarehouseDtoPage dto);
        /// <summary>
        /// 批量修改数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateOutWare(OutWarehouseDtoPes dto);
    }
}
